The high cost of data transfers is an impediment to the widespread use of mobile computing devices. For example, in the case of mobile phones, the ratio of data plan cost to median income may be relatively high. Therefore, mobile phones with operating systems that are efficient in data consumption are highly desirable.
Several existing techniques attempt to mitigate the high cost of network transfers for mobile computing devices by providing for the efficient consumption of data. For example, compression, de-duplication, and other similar techniques may be used on network traffic sent to a particular mobile computing device. However, such techniques may not reduce the size of network transfers to an acceptable degree.
Another technique involves exposing network usage statistics by various applications to the user of a mobile computing device and allowing the user to change his behavior according to the data plan for the mobile computing device. However, this technique relies on active behavior monitoring on the part of the user and, thus, can be time-consuming for the user.
In addition, application programming interfaces (APIs) that reduce network usage may be provided to application developers. For example, an API that executes network transfers based on how many bytes are included in a user's data plan may be implemented into an application. However, it is often difficult for application developers to understand the use of such APIs in the context of specific applications.